SQL 错误 [1055] [42000]mysql group by重复数据筛选的用法 |
您所在的位置:网站首页 › sas group by 用法 › SQL 错误 [1055] [42000]mysql group by重复数据筛选的用法 |
SQL 错误 [1055] [42000]mysql group by重复数据筛选的用法
文章目录
SQL 错误 [1055] [42000]mysql group by重复数据筛选的用法前言一、group by基础用法二、group by去重复的用法1.关闭sql_mode “ONLY_FULL_GROUP_BY”2.视条件使用MAX(),MIN(),SUM(),ANT_VALUE() 这种聚合函数
总结
前言
提示:SQL 错误 [1055] [42000]: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'plt_om_test.t.ticket_type_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 在工作过程中遇到的问题,上述报错是因为在 MySQL 5.7 版本中,默认开启了 only_full_group_by 模式,使得group by的用法需要涵盖全部非同字段,当我们只需要一条重复数据的其中一条时显得没那么好用 提示:以下是本篇文章正文内容,下面案例可供参考 一、group by基础用法 select t.type_code_fullname, t.name from kf_terminal_tickettype_sw t group by t.type_code_fullname, t.name有可能会出现重复数据,如下图 二、group by去重复的用法 1.关闭sql_mode “ONLY_FULL_GROUP_BY”此方法数据库重启后会失效: 查询sql_mode select @@GLOBAL.sql_mode;查询结果会包含“ONLY_FULL_GROUP_BY”,我们只需执行下述命令,把“ONLY_FULL_GROUP_BY”删除替换原来配置,即可临时更新配置 set sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';关闭“ONLY_FULL_GROUP_BY”配置后即可使用非全匹配group by,有重复数据会默认取列表第一个 select type_code_fullname,name from kf_terminal_tickettype_sw group by type_code_fullname 2.视条件使用MAX(),MIN(),SUM(),ANT_VALUE() 这种聚合函数代码如下(示例): select type_code_fullname,min(name) from kf_terminal_tickettype_sw group by type_code_fullname这里补充介绍一下ANT_VALUE() 用法 //ANT_VALUE() : select type_code_fullname,any_value(name) from kf_terminal_tickettype_sw group by type_code_fullnameANT_VALUE() 会默认取列表里面的筛选出的第一项数据 总结以上就是今天要讲的内容,本文仅仅简单介绍了gruop by的使用和使用过程中遇到的一个问题处理,希望遇到问题的时候看到这篇文档能帮助到你们。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |